<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  undefined PK null

  undefined 原始值的初始值；未定义
  null 对象的初始值 空对象的引用



  <script>
    // 1.1undefined出现场景
    /**
     * 1.已声明未赋值的变量
     * 2.访问对象不存在的属性
     * 3.函数没有返回值的情况
     * 4.参数没有传入，实参没有传入，获取形参
     * 5.void() （了解）
     * */
    /* 
        var a
        console.log(a);
        var obj = {}
        console.log(obj.a);

        function test(a) {
          console.log(a);
        }
        console.log(test());

        console.log(void(1));
     */

    // 1.2typeof undefined
    // console.log(typeof undefined); // undefined

    // 1.3 转换
    /*     
        console.log(Boolean(undefined)); // false
        console.log(String(undefined)); // undefined
        console.log(Number(undefined)); // NaN
     */

    //  2.1 typeof null
    // 历史遗留问题 null是原始值类型但是 返回是object
    // 所以称null 空对象的引用
    console.log(typeof null); // object

    // 2.2 转换
    console.log(Boolean(null)); // false
    console.log(String(null)); // null
    console.log(Number(null)); // 0

    // 2.3 undefined null关系
    console.log(undefined == null); // true 
    console.log(undefined === null);  // false


  </script>
</body>

</html>